package com.luoc;

import com.luoc.service.*;
import com.luoc.service.impl.ConcreteMediator;

/**
 * @Author: luoc
 * @Date: 2019/10/10 14:57
 * 中介者模式
 * 中介者模式(Mediator Pattern)：用一个中介对象（中介者）来封装一系列的对象交互，
 * 中介者使各对象不需要显式地相互引用，从而使其耦合松散，而且可以独立地改变它们之间的交互。
 * 中介者模式又称为调停者模式，它是一种对象行为型模式。
 */
public class MediatorPattern {

    public static void main(String[] args) {
        ConcreteMediator mediator = new ConcreteMediator();

        Button button = new Button();
        List list = new List();
        TextBox textBox = new TextBox();
        ComboBox comboBox = new ComboBox();


        mediator.setButton(button);
        mediator.setBox(textBox);
        mediator.setComboBox(comboBox);
        mediator.setList(list);

        button.setMediator(mediator);
        list.setMediator(mediator);
        textBox.setMediator(mediator);
        comboBox.setMediator(mediator);


        list.update();
        list.ComponetChange();

        button.update();
        button.ComponetChange();

    }
}
